Motion detection is an important video processing technique, often utilized as a sub-function block in video processing applications such as video noise reduction, video de-interlacing, etc. The performance of such methods depends on how precisely motion is detected in a video sequence.
For example, motion detection is used in noise reduction to mix the temporal and spatial filtered values. A simple scheme is switching on temporal filtering in a non-motion region, and switching off temporal filtering in a motion region where spatial filtering is used instead. If motion detection fails motion blur may occur in the filtered video frame.
In another deinterlacing example, motion detection is used to mix the temporal and spatial interpolated values. Temporal interpolation is the best solution if there is no motion at the location where the value is to be interpolated. Otherwise, spatial interpolation should be used.
Existing motion detection methods are performed on the original video frames. In a TV system, noise reduction is often applied first to obtain noise-free video sequences. To reduce cost, generally only the original incoming frame and the previous filtered frames are saved into the memory. In that case, motion detection should be applied on an original frame and a previous filtered frame. The motion detection methods designed for two original frames are not optimal because the statistical characteristic of the filtered frame is different from the original frame.